There is an increased emphasis today on the development of computing tools which incorporate digital video capabilities. For example, a common computing application is the use of a teleconferencing workstation in which digital video information is transmitted across ordinary telephone lines. Conventional teleconferencing systems consist of a camera which captures an image and outputs a digital stream of data. This data is then compressed by an ordinary processor and encoded for subsequent transmission across phone lines. At the other end of the phone lines, another processing device performs the decoding process, which is simply the inverse of the encoding algorithm. Eventually, the original digital video information is retrieved and stored at the destination computing resource. Typically, a central processing unit of a microprocessor is utilized to perform both the encoding and decoding functions in present teleconferencing systems.
One problem with these prior art approaches is that system performance is usually constrained by the memory traffic along the various data pathways. For instance, digital information output from the camera is typically transmitted to the central processing unit along a system bus, which also communicates with a main memory. Data transmission between the CPU, camera, memory, and network across the system bus is slowed by the frequent memory traffic associated with normal video processing. In certain circumstances, adding a cache memory can actually increase the memory traffic since the cache must frequently access the main memory (e.g., during writebacks, updates, etc.).
Another problem with such systems is that the video camera, frame grabber board and the compression hardware are separate components. This means that each of these components must be interfaced and maintained separately, as described above.
By way of example, video information is usually transmitted from by the camera at data rates in excess of 10 megabytes per second (MB/sec). In teleconferencing applications, this video data eventually gets sent to the outside world via a network. In the meantime, however, the network is also sending encoded images back to the central processing unit to be decoded. The decoding process requires that the information first be written to memory, and then be operated on by the central processing unit. This tends to increase the memory traffic along the system bus.
As will be seen, the present invention offers a system providing video compression/encoding for communications across a network which alleviates much of the memory traffic along the system bus. The novel features of the invention allow for a dramatic decrease in the memory bandwidth requirements of the system, as well as providing increased video processing and computational abilities.